package vista;
//borrar algunas referencias
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import modelo.Modelo;
import modelo.funciones.Funcion;

public abstract class VistaAdicionales implements ActionListener{
	
	private Modelo modelo;
	private Funcion f;
	private String nombre;
	
	public VistaAdicionales(Modelo modelo,String nombre){
		this.setModelo(modelo);
		this.setNombre(nombre);
	}
	
	public void setNombre(String nombre){
		this.nombre=nombre;
	}
	
	public String getNombre(){
		return this.nombre;
	}
	
	public void setModelo(Modelo modelo){
		this.modelo=modelo;
	}
	
	public Modelo getModelo(){
		return this.modelo;
	}
	
	public Funcion getFuncion(){
		return this.f;
	}
	
	public void setFuncion(Funcion f){
		this.f=f;
	}
	
	public void ventanaDeOpciones() {
		PanelObservador panel=this.crearPanelObservador(this.getFuncion());
		JFrame frame=new JFrame(this.getNombre());
		frame.setSize(new Dimension(400,200));
		frame.setResizable(false);
		frame.add(panel);
		frame.setVisible(true);
	}
	
	public abstract PanelObservador crearPanelObservador(Funcion f);
	
	public void actionPerformed(ActionEvent arg0) {
		BotonObservador boton=(BotonObservador)arg0.getSource();
		try {
			this.setFuncion(this.getModelo().getFunciones().get(this.getModelo().getNombresFunciones().indexOf(boton.getFuncion())));
			this.ventanaDeOpciones();	
		} catch (ArrayIndexOutOfBoundsException e){
			Mensaje mensaje=new Mensaje("No a seleccionado ninguna funcion");
		}
	}
	
	
}
